With the vigorous development of the Ethernet technology, the performances of Ethernet switches are being constantly improved. Since the Ethernet switches are low-priced and maintained and configured at low cost, a lot of large-scaled networks such as Data Centers and Metropolitan Area Networks (MANs) adopt a large amount of Ethernet switches to perform networking. In the network constructed by the Ethernet switches, the distribution of data in a multicasting manner is advantageous of network construction at low cost, high data distribution efficiency, and the like. However, since the scale of traditional Ethernet networks is restricted due to their poor expandability, the advantage of multicasting in the Ethernet networks cannot be exhibited.
In order to solve the expandability problem of the traditional Ethernet networks and better perform data distribution in a multicasting manner in the Ethernet networks, the conventional art provides a network architecture called SEATTLE, which is capable of both possessing the IP expandability and maintaining the simplicity of the Ethernet networks. SEATTLE uses a DHT (Distributed Hash Table) routing addressing mechanism to realize the expansion of the Ethernet networks. The specific implementation process is described below: on one hand, when the location of a host is being parsed, the host uses a Directory Service to release and maintain a mapping relationship between a MAC address and the current location, and forwards data through this mapping relationship. For example, when a host “_a_” whose MAC address is “_MACa_” arrives at its access switch “_Sa_” this switch must release in the Directory Service a mapping relationship between the MAC of the host a and the location thereof. The switch Sa instructs a switch “_ra_” to store (MACa, Sa) by operating F(MACa)=ra. Meanwhile, the switch Sa serves as a location parser of the host a. Then, when a host “_b_” is connected to a switch Sb and intends to send data to MACa, the host b forwards the data to an access switch Sb, the access switch Sb obtains information of the switch ra by calculating F(MACa)=ra and then forwards the data to the switch ra. Since there may be several hops from the access switch Sb to the switch ra, the switch Sb packages data packets with an address of ra as a header of a destination. After receiving the data packets, the switch ra queries about the access switch of the host a being Sa, and then forwards data to Sa. In order to limit the number of data packets passing through the parser, the switch ra also notifies the switch Sb that the current location of the host a is Sa. The switch Sb then stores in a buffer related information that the current location of the host a is Sa. When the data packets are forwarded subsequently, the switch Sb can forward the data packets by searching for the information in the buffer, thereby improving the data forwarding efficiency.
On the other hand, a host searches for a MAC address corresponding to an IP address by means of ARP in the traditional Ethernet networks, but SEATTLE avoids ARP flooding in the traditional Ethernet networks and expands the ARP, so that the ARP returns both the MAC address of the host and information of the switch connected to the host (the information reflects the location of the host). Since the location information of the host is sensed, the data packets can forward ARP requests by selecting the shortest path.
However, when performing multicast in Ethernet networks with the SEATTLE architecture, the inventors select a multicast root node, randomly map a multicast group to a switch using a hash function, and enable the switch to act as the multicast root node, but this manner of constructing a multicast tree does not take a network topology into consideration, as a result of which the selected multicast tree root node may be far from all the receiving hosts, thereby reducing the Ethernet multicast performance.